#ifndef OCCT_CAD_OCCFACESELECTOR_H
#define OCCT_CAD_OCCFACESELECTOR_H
#include "OccGeoSelector.h"
#include "TopoDS_Shape.hxx"
#include "TopoDS.hxx"

class OccFaceSelector :public OccGeoSelector {
public:

    OccFaceSelector();

    ~OccFaceSelector();


public:
    //添加选中的shape
    bool addSelectedShape(const TopoDS_Shape& faceShape) override;

    //获取当前第一个Face
    const TopoDS_Face& getFirstSelected();

    //获取所有的Vertex,以Shape的方式返回
    std::vector<TopoDS_Shape> getSelectedFaces();

    //检查元素是否合法
    bool isDataValid();

    //删除已选中的元素
    bool deleteSelectedShape(const TopoDS_Shape& shape) override;

    //清除所有选中
    void clearSelectedShape();

    const TopoDS_Shape& getSelectedShape() override;

private:

    std::vector<TopoDS_Shape> m_selectedFaces;

};


#endif //OCCT_CAD_OCCFACESELECTOR_H#pragma once
